package cn.yrec.rain.analysis.program;


import cn.yrec.rain.analysis.enums.ResultCode;
import cn.yrec.rain.analysis.vo.RainModel;

/**
 * 描述:
 *  模型计算核心
 * @createDate: 2022/05/09 下午 7:32:27
 * @author: yanglichen
 */
public class CalculateCore {

    private static CalculateCore instance;

    /**
     * 方法描述: 私有构造器
     * @author yanglichen
     * @date 2022-05-09 23:05
     **/
    private CalculateCore() {
    }

    /**
     * 方法描述: 单例模式
     * @author yanglichen
     * @date 2022-05-09 23:05
     **/
    public static CalculateCore getInstance() {
        if (instance == null) {
            synchronized (CalculateCore.class) {
                if (instance == null) {
                    instance = new CalculateCore();
                }
            }
        }
        return instance;
    }

    /**
     * 方法描述: 寻找原型雨
     * @author yanglichen
     * @date 2022-05-09 23:08
     * @param rainModel 降雨参数
     * @return 原型雨
     **/
    public ResultCode findRain(RainModel rainModel) {
        CalculateFunction.findRain(rainModel);
        return ResultCode.SUCCESS;
    }

    /**
     * 方法描述: 根据原形雨寻找相思雨
     * @author yanglichen
     * @date 2023-04-05 10:18
     * @param rainModel 降雨参数
     * @return 相似雨列表
     **/
    public ResultCode findByRainfall(RainModel rainModel) {
        CalculateFunction.findByRainfall(rainModel);
        return ResultCode.SUCCESS;
    }
}
